package com.naiterui.ehp.bs.im.vo;

import org.apache.commons.lang3.StringUtils;

import com.alibaba.fastjson.JSON;

/**
 * 多媒体文件上传接口参数对象
 * <P>File name : MediaUploadVO.java </P>
 * <P>Author : zhouyanxin </P>
 * <P>Date : 2015年6月26日 </P>
 */
public class MediaUploadVO {

    /**
     * 平台
     */
    private Integer platform;

    /**
     * 应用来源 ：<code>origin</code>
     */
    private Integer origin;

    /**
     * 消息类型
     * 参见Contants文件中定义的消息类型
     */
    private Integer type;

    /**
     * 发送者Id
     */
    private Long fromId;

    /**
     * 接收者Id
     */
    private Long toId;

    /**
     * token
     */
    private String token;

    /**
     * 属性验证
     * MediaUploadVO.validate()<BR>
     * <P>Author : zhouyanxin </P>
     * <P>Date : 2015年6月26日 </P>
     * @return
     */
    public boolean validate() {
        return !(type == null || type <= 0 || fromId == null || fromId <= 0 || toId == null || toId <= 0 || StringUtils.isEmpty(token));
    }

    /**
     * 重写toString方法
     * <P>Author : zhouyanxin </P>
     * <P>Date : 2015年6月26日 </P>
     * @return
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return JSON.toJSONString(this);
    }

    /**
     * @return Integer 取得域 platform 的方法。
     */
    public Integer getPlatform() {
        return platform;
    }

    /**
     * @param platform 对域 platform 的设置方法.
     */
    public void setPlatform(Integer platform) {
        this.platform = platform;
    }

    /**
     * @return Integer 取得域 type 的方法。
     */
    public Integer getType() {
        return type;
    }

    /**
     * @param type 对域 type 的设置方法.
     */
    public void setType(Integer type) {
        this.type = type;
    }

    /**
     * @return Long 取得域 fromId 的方法。
     */
    public Long getFromId() {
        return fromId;
    }

    /**
     * @param fromId 对域 fromId 的设置方法.
     */
    public void setFromId(Long fromId) {
        this.fromId = fromId;
    }

    /**
     * @return Long 取得域 toId 的方法。
     */
    public Long getToId() {
        return toId;
    }

    /**
     * @param toId 对域 toId 的设置方法.
     */
    public void setToId(Long toId) {
        this.toId = toId;
    }

    /**
     * @return String 取得域 token 的方法。
     */
    public String getToken() {
        return token;
    }

    /**
     * @param token 对域 token 的设置方法.
     */
    public void setToken(String token) {
        this.token = token;
    }

    /**
     * @return Integer 取得域 origin 的方法。
     */
    public Integer getOrigin() {
        return this.origin;
    }

    /**
     * @param origin 对域 origin 的设置方法.
     */
    public void setOrigin(Integer origin) {
        this.origin = origin;
    }

}
